home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
pctj8505.arc
/
BUG3.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-09-14
|
2KB
|
51 lines
{ BUG3.PAS }
{ This program demonstrates how MS-Pascal 3.13, 3.20 }
{ and IBM Pascal 2.0 goof up on REAL VAR parameters. }
{ }
PROGRAM bug3(output) ;
VAR
x : real8 ;
PROCEDURE pass_var(VAR a:real8) ;
BEGIN {pass_var}
writeln('cos(x) = ',cos(a)) ;
writeln('exp(x) = ',exp(a)) ;
writeln('ln(x) = ',ln(a)) ;
writeln('sin(x) = ',sin(a)) ;
writeln('sqrt(x) = ',sqrt(a)) ;
END ; {pass_var}
PROCEDURE pass_vars(VARS b:real8) ;
BEGIN {pass_vars}
writeln('cos(x) = ',cos(b)) ;
writeln('exp(x) = ',exp(b)) ;
writeln('ln(x) = ',ln(b)) ;
writeln('sin(x) = ',sin(b)) ;
writeln('sqrt(x) = ',sqrt(b)) ;
END ; {pass_vars}
BEGIN {bug3}
x := 33.33 ;
writeln('BUG3 RESULTS') ;
writeln ;
writeln('Here is what happens
when x is not passed as a parameter:') ;
writeln('cos(x) = ',cos(x)) ;
writeln('exp(x) = ',exp(x)) ;
writeln('ln(x) = ',ln(x)) ;
writeln('sin(x) = ',sin(x)) ;
writeln('sqrt(x) = ',sqrt(x)) ;
writeln ;
writeln('Here is what happens
when x is passed as a VAR parameter:') ;
pass_var(x) ;
writeln ;
writeln('Here is what happens
when x is passed as a VARS parameter:') ;
pass_vars(x) ;
END. {bug3}